/*
 * Licensed to the 南京汇海交通科技有限公司
 *
 * Copyright (c) 2025.
 * All rights reserved.
 *
 * 本软件属南京汇海交通科技有限公司所有，在未获得南京汇海交通科技有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.chframework.mybatis;

import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;

public class PageConfig {

    /**
     * 配置mybatis-plus拦截器和分页插件
     */
    @Bean
    @ConditionalOnMissingBean(DruidDataSource.class)
    public MybatisPlusInterceptor mybatisPlusInterceptor(DruidDataSource druidDataSource) {
        DbType dbType = JdbcUtils.getDbType(druidDataSource.getUrl());
        //1.创建拦截器
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //2.创建分页插件
        PaginationInnerInterceptor page = new PaginationInnerInterceptor(dbType);
        //3.添加分页插件
        mybatisPlusInterceptor.addInnerInterceptor(page);
        //4.返回
        return mybatisPlusInterceptor;
    }

}
